clc,clear
r=[1.000 0.577 0.509 0.387 0.462
   0.577 1.000 0.599 0.389 0.322
   0.509 0.599 1.000 0.436 0.426
   0.387 0.389 0.436 1.000 0.523
   0.462 0.322 0.426 0.523 1.000];
%下面利用相关系数矩阵求主成分解，vec1的列为r的特征向量，即主成分的系数
[vec1,val,rate]=pcacov(r);%val为r的特征值，rate为各个主成分的贡献率
f1=repmat(sign(sum(vec1)),size(vec1,1),1);%构造与vec同维数的元素为±1的矩阵
vec2=vec1.*f1; %修改特征向量的正负号，使得每个特征向量的分量和为正
f2=repmat(sqrt(val)',size(vec2,1),1);  %构造与vec2同维数的矩阵
a=vec2.*f2    %构造全部因子的载荷矩阵，见（10.27）式 
a1=a(:,1)   %提出一个因子的载荷矩阵
tcha1=diag(r-a1*a1')   %计算一个因子的特殊方差
a2=a(:,[1,2])  %提出两个因子的载荷矩阵
tcha2=diag(r-a2*a2')  %计算两个因子的特殊方差
ccha2=r-a2*a2'-diag(tcha2)  %求两个因子时的残差矩阵
con=cumsum(rate)     %求累积贡献率
